【问题描述】
使用pandas提供的函数和方法实现CSV文件数据的读取和写入。
【示例2-4】
要导入的CSV文件的完整路径为“D:/Samples/ch02/03 CSV数据导入导出/关键词搜索指数.csv”。该文件打开后如图2-3所示,是很多商品名称作为关键字得到的搜索指数。本例用pandas导入前6行数据,并将导入的数据导出到相同路径下的“关键词搜索指数2.csv”中。
图2-3 关键词搜索指数
- 编写下面的代码:
code.python
import pandas as pd
import os
# 定义CSV文件路径
csv_path = "D:/Samples/ch02/03 CSV数据导入导出/关键词搜索指数.csv"
# 使用pandas读取CSV文件前6行数据,编码方式为"gbk"
data = pd.read_csv(csv_path, encoding="gbk", nrows=6)
# 输出导入的数据
print(data)
# 获取CSV文件所在目录的完整路径
folder_path = os.path.dirname(os.path.abspath(csv_path))
# 将导入的数据保存到该路径下的“关键词搜索指数2.csv”中,编码方式为"gbk"
output_path = os.path.join(folder_path, "关键词搜索指数2.csv")
data.to_csv(output_path, index=False, encoding="gbk")
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出导入的数据,并且该数据被保存到与给定数据文件相同路径下的“关键词搜索指数2.csv”中。
code.python
>>> == RESTART: D:/samples/ 1.py =
排名 关键词 搜索指数 全站商品数
0 1 三谷慕斯沐浴露 396 25
1 2 蓝月亮洗手液 289 47
2 3 植然魅发膜 260 17
3 4 约肤搓泥宝 260 15
4 5 韩缪水蜜桃 238 42
5 6 修正洗发水 224 39
【知识点扩展】
本例中导入CSV文件的数据使用了pandas的read_csv函数,将导入的数据导出到CSV文件时使用了DataFrame对象的to_csv方法。下面介绍read_csv函数和to_csv方法的语法格式。
- pandas的read_csv函数
pandas中用read_csv函数读取CSV文件数据,该函数常用参数的意义如表2-2所示。使用这些参数可以对导入CSV文件数据进行更精细的控制。
表2-2 read_csv函数的常用参数
| 参 数 | 说 明 |
|---|---|
| filepath | Excel文件的路径和名称 |
| sep | 指定分隔符,默认时使用逗号作为分隔符 |
| header | 指定用哪行数据作为索引行,如果是多层索引,用多行的行号组成列表进行指定 |
| index_col | 指定用哪列数据作为索引列,如果是多层索引,用多列的列号或名称组成列表进行指定 |
| usecols | 如果只需要导入原始数据中的部分列数据,使用该参数用列表进行指定 |
| dtype | 用字典指定特定列的数据类型,如{"A":np.float64 }指定A列的数据类型为64位浮点型 |
| prefix | 在没有列标签时,给列添加前缀,例如,添加"Col"称为Col0, Col1, Col2等 |
| skiprows | 指定读入时忽略前面多少行 |
| skipfooter | 指定读入时忽略后面多少行 |
| nrows | 指定需要读取的行数 |
| names | 用列表指定列的列索引标签 |
| encoding | 指定编码方式,默认时为UTF-8,还可以指定为gbk等 |
- DataFrame对象的to_csv方法
使用DataFrame对象的to_csv方法将数据导出到指定的CSV文件。用path_or_buf参数指定导出文件的路径和名称,用sep参数指定分隔符。